unit u_autorization_form;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { Tf_Authentication_form }

  Tf_Authentication_form = class(TForm)
    b_Log_in: TButton;
    e_Password_field: TEdit;
    e_Login_field: TEdit;
    l_Result_message: TLabel;
    l_Login: TLabel;
    l_Password: TLabel;
    procedure b_Log_inClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

implementation

uses
  u_Core;

{$R *.lfm}

{ Tf_Authentication_form }

procedure Tf_Authentication_form.b_Log_inClick(Sender: TObject);
var
  b_Authentication_flag:boolean;
  core_error:T_Core_errors;
begin
  b_Authentication_flag:=FALSE;  //разрешён/неразрешён доступ. Можно заменить на перечисление, но тогда будет case вложенный в case, а я тут итак переборщил помоему
  core_error:=u_Core.f_Authentication(e_Login_field.Text, e_Password_field.Text,b_Authentication_flag); //Вызываем функцию аутенитификации модуля u_Core, передаём ей введённые логин и пароль, получаем результат
  case core_error of
    NOERROR:
      if b_Authentication_flag then   //Если результат положительный - закрываем окно с результатом mrYes
        ModalResult:=mrYes
      else
        l_Result_message.Caption:='Неверные логин или пароль'; //Иначе пишем, что логин+пароль не верны
    ERROR:
      l_Result_message.Caption:='Ошибка аутентификации';   //Если функция аутентификации вернула ошибку
  else ShowMessage('Ошибка');
  end;
end;

end.

